var jfJQMQRReader = (function($, window, document) {

  var that = {

    internalMessages: {
      errorTitle: 'Fehler beim Lesen des QR-Codes',
      errorIOSVersion: 'Diese Funktion wird leider erst ab iOS Version 4.3 oder höher unterstützt. Bitte aktualisieren Sie Ihr iOS-Betriebssystem mit Hilfe von iTunes, um den QR-Reader zu nutzen.'
    },
    
    open: function() {
      if (window.plugins && window.plugins.barcodeScanner) {
        window.plugins.barcodeScanner.scan(
          that.onScanSuccess,
          that.onScanError
        );
        return false; //stop regular onclick event processing
      }
      return true; //continue regular onclick event processing
    },
    
    onScanSuccess: function(result) {

      if (result.cancelled) {
        return;
      }
    
      if (that.isUrl(result.text)) {
        window.open(result.text, '_system' );
      }
      else {
        that.onScanError('Der QR-Code enhält keine URL');
      }
    },

    onScanError: function(error) {

      if (error === 'AVFoundation Framework not available') {
        error = that.internalMessages.errorIOSVersion;
      }

      window.navigator.notification.alert(error, null, that.internalMessages.errorTitle);
    },
    
    isUrl: function(value) {
      return typeof value === 'string' && 0 === value.indexOf('http');
    }

  };

  return that;
  
})(jQuery, window, document);